package com.qnbc.mystery.pojo.domain;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
import com.qnbc.mystery.core.annotation.Excel;
import com.qnbc.mystery.core.domain.BaseEntity;
import org.apache.commons.lang3.builder.ToStringBuilder;
import org.apache.commons.lang3.builder.ToStringStyle;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 售后纠纷对象 alfter_sale_dispute
 *
 * @author guzj
 * @date 2024-01-24
 */
public class AlfterSaleDispute extends BaseEntity
{
    private static final long serialVersionUID = 1L;

    /** 售后id */
    @TableId(type = IdType.AUTO)
    @JsonSerialize(using = ToStringSerializer.class)
    private Long alfterSaleId;

    /** 采购订单号 */
    @Excel(name = "采购订单号")
    private Long recycleOrderId;

    /** 销售订单号 */
    @Excel(name = "销售订单号")
    private Long sellOrderId;

    /** 售后状态 0售后中 1已结束 */
    @Excel(name = "售后状态 0售后中 1已结束")
    private Long alfterSaleStatus;

    /** 责任方 0寄售方 1非寄售方 */
    @Excel(name = "责任方 0寄售方 1非寄售方")
    private Long dutyType;

    /** 涉及扣款金额 */
    @Excel(name = "涉及扣款金额")
    private BigDecimal dediction;

    /** 扣款来源  0->账户余额 1-> 押金 2->退款 */
    @Excel(name = "扣款来源  0->账户余额 1-> 押金 2->退款")
    private Long dedictionSourceId;

    /** 业务类型  0权益  */
    @Excel(name = "业务类型  0权益 ")
    private Long businessType;

    /** 售后原因 */
    @Excel(name = "售后原因")
    private String alfterSaleReason;

    /** 售后结束时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "售后结束时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date alfterSaleFinalTime;

    /** 发起方账号 */
    @Excel(name = "发起方账号")
    private String initiateAccount;

    /** 发起方账号ID */
    @Excel(name = "发起方账号ID")
    private String initiateAccountUid;

    /** 0=寄售,1=采购 */
    @Excel(name = "0=寄售,1=采购")
    private String initiateAccountStatus;

    /** 上传凭证 */
    @Excel(name = "上传凭证")
    private String voucherUrl;

    /** 判定方账号 */
    @Excel(name = "判定方账号")
    private String judgeAccount;

    /** 判定方账号ID */
    @Excel(name = "判定方账号ID")
    private String judgeAccountId;

    /** 判定时间 */
    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "判定时间", width = 30, dateFormat = "yyyy-MM-dd")
    private Date judgeTime;

    /** 订单处理售后:0=未开始;1=处理中;2=已结束 */
    @Excel(name = "订单处理售后:0=未开始;1=处理中;2=已结束")
    private String isOrderDispute;

    /** 佣金处理售后:0=未开始;1=处理中;2=已结束 */
    @Excel(name = "佣金处理售后:0=未开始;1=处理中;2=已结束")
    private String isPopularDispute;

    /** 充值订单处理售后:0=未开始;1=处理中;2=已结束 */
    @Excel(name = "充值订单处理售后:0=未开始;1=处理中;2=已结束")
    private String isRecycleDispute;

    public void setAlfterSaleId(Long alfterSaleId)
    {
        this.alfterSaleId = alfterSaleId;
    }

    public Long getAlfterSaleId()
    {
        return alfterSaleId;
    }
    public void setRecycleOrderId(Long recycleOrderId)
    {
        this.recycleOrderId = recycleOrderId;
    }

    public Long getRecycleOrderId()
    {
        return recycleOrderId;
    }
    public void setSellOrderId(Long sellOrderId)
    {
        this.sellOrderId = sellOrderId;
    }

    public Long getSellOrderId()
    {
        return sellOrderId;
    }
    public void setAlfterSaleStatus(Long alfterSaleStatus)
    {
        this.alfterSaleStatus = alfterSaleStatus;
    }

    public Long getAlfterSaleStatus()
    {
        return alfterSaleStatus;
    }
    public void setDutyType(Long dutyType)
    {
        this.dutyType = dutyType;
    }

    public Long getDutyType()
    {
        return dutyType;
    }
    public void setDediction(BigDecimal dediction)
    {
        this.dediction = dediction;
    }

    public BigDecimal getDediction()
    {
        return dediction;
    }
    public void setDedictionSourceId(Long dedictionSourceId)
    {
        this.dedictionSourceId = dedictionSourceId;
    }

    public Long getDedictionSourceId()
    {
        return dedictionSourceId;
    }
    public void setBusinessType(Long businessType)
    {
        this.businessType = businessType;
    }

    public Long getBusinessType()
    {
        return businessType;
    }
    public void setAlfterSaleReason(String alfterSaleReason)
    {
        this.alfterSaleReason = alfterSaleReason;
    }

    public String getAlfterSaleReason()
    {
        return alfterSaleReason;
    }
    public void setAlfterSaleFinalTime(Date alfterSaleFinalTime)
    {
        this.alfterSaleFinalTime = alfterSaleFinalTime;
    }

    public Date getAlfterSaleFinalTime()
    {
        return alfterSaleFinalTime;
    }
    public void setInitiateAccount(String initiateAccount)
    {
        this.initiateAccount = initiateAccount;
    }

    public String getInitiateAccount()
    {
        return initiateAccount;
    }
    public void setInitiateAccountUid(String initiateAccountUid)
    {
        this.initiateAccountUid = initiateAccountUid;
    }

    public String getInitiateAccountUid()
    {
        return initiateAccountUid;
    }
    public void setInitiateAccountStatus(String initiateAccountStatus)
    {
        this.initiateAccountStatus = initiateAccountStatus;
    }

    public String getInitiateAccountStatus()
    {
        return initiateAccountStatus;
    }
    public void setVoucherUrl(String voucherUrl)
    {
        this.voucherUrl = voucherUrl;
    }

    public String getVoucherUrl()
    {
        return voucherUrl;
    }
    public void setJudgeAccount(String judgeAccount)
    {
        this.judgeAccount = judgeAccount;
    }

    public String getJudgeAccount()
    {
        return judgeAccount;
    }
    public void setJudgeAccountId(String judgeAccountId)
    {
        this.judgeAccountId = judgeAccountId;
    }

    public String getJudgeAccountId()
    {
        return judgeAccountId;
    }
    public void setJudgeTime(Date judgeTime)
    {
        this.judgeTime = judgeTime;
    }

    public Date getJudgeTime()
    {
        return judgeTime;
    }
    public void setIsOrderDispute(String isOrderDispute)
    {
        this.isOrderDispute = isOrderDispute;
    }

    public String getIsOrderDispute()
    {
        return isOrderDispute;
    }
    public void setIsPopularDispute(String isPopularDispute)
    {
        this.isPopularDispute = isPopularDispute;
    }

    public String getIsPopularDispute()
    {
        return isPopularDispute;
    }
    public void setIsRecycleDispute(String isRecycleDispute)
    {
        this.isRecycleDispute = isRecycleDispute;
    }

    public String getIsRecycleDispute()
    {
        return isRecycleDispute;
    }

    @Override
    public String toString() {
        return new ToStringBuilder(this,ToStringStyle.MULTI_LINE_STYLE)
            .append("alfterSaleId", getAlfterSaleId())
            .append("recycleOrderId", getRecycleOrderId())
            .append("sellOrderId", getSellOrderId())
            .append("alfterSaleStatus", getAlfterSaleStatus())
            .append("dutyType", getDutyType())
            .append("dediction", getDediction())
            .append("dedictionSourceId", getDedictionSourceId())
            .append("businessType", getBusinessType())
            .append("alfterSaleReason", getAlfterSaleReason())
            .append("alfterSaleFinalTime", getAlfterSaleFinalTime())
            .append("createTime", getCreateTime())
            .append("updateTime", getUpdateTime())
            .append("initiateAccount", getInitiateAccount())
            .append("initiateAccountUid", getInitiateAccountUid())
            .append("initiateAccountStatus", getInitiateAccountStatus())
            .append("voucherUrl", getVoucherUrl())
            .append("judgeAccount", getJudgeAccount())
            .append("judgeAccountId", getJudgeAccountId())
            .append("judgeTime", getJudgeTime())
            .append("isOrderDispute", getIsOrderDispute())
            .append("isPopularDispute", getIsPopularDispute())
            .append("isRecycleDispute", getIsRecycleDispute())
            .toString();
    }
}
